3,305 research outputs found
Scalable XML Collaborative Editing with Undo short paper
Commutative Replicated Data-Type (CRDT) is a new class of algorithms that
ensures scalable consistency of replicated data. It has been successfully
applied to collaborative editing of texts without complex concurrency control.
In this paper, we present a CRDT to edit XML data. Compared to existing
approaches for XML collaborative editing, our approach is more scalable and
handles all the XML editing aspects : elements, contents, attributes and undo.
Indeed, undo is recognized as an important feature for collaborative editing
that allows to overcome system complexity through error recovery or
collaborative conflict resolution
Research report : Collaborative Peer 2 Peer Edition: Avoiding Conflicts is Better than Solving Conflicts
Collaborative edition is achieved by distinct sites that work independently
on (a copy of) a shared document. Conflicts may arise during this process and
must be solved by the collaborative editor. In pure Peer to Peer collaborative
editing, no centralization nor locks nor time-stamps are used which make
conflict resolution difficult. We propose an algorithm which relies on the
notion or semantics dependence and avoids the need of any integration
transformation to solve conflicts. Furthermore, it doesn't use any history file
recording operations performed since starting the edition process. We show how
to define editing operations for semi-structured documents i.e. XML-like trees,
that are enriched with informations derived for free from the editing process.
Then we define the semantics dependence relation required by the algorithm and
we present preliminary results obtained by a prototype implementation.Comment: 12 page
Peer to Peer Optimistic Collaborative Editing on XML-like trees
Collaborative editing consists in editing a common document shared by several
independent sites. This may give rise to conficts when two different users
perform simultaneous uncompatible operations. Centralized systems solve this
problem by using locks that prevent some modifications to occur and leave the
resolution of confict to users. On the contrary, peer to peer (P2P) editing
doesn't allow locks and the optimistic approach uses a Integration
Transformation IT that reconciliates the conficting operations and ensures
convergence (all copies are identical on each site). Two properties TP1 and
TP2, relating the set of allowed operations Op and the transformation IT, have
been shown to ensure the correctness of the process. The choice of the set Op
is crucial to define an integration operation that satisfies TP1 and TP2. Many
existing algorithms don't satisfy these properties and are indeed incorrect
i.e. convergence is not guaranteed. No algorithm enjoying both properties is
known for strings and little work has been done for XML trees in a pure P2P
framework (that doesn't use time-stamps for instance). We focus on editing
unranked unordered labeled trees, so-called XML-like trees that are considered
for instance in the Harmony pro ject. We show that no transformation satisfying
TP1 and TP2 can exist for a first set of operations but we show that TP1 and
TP2 hold for a richer set of operations. We show how to combine our approach
with any convergent editing process on strings (not necessarily based on
integration transformation) to get a convergent process
Representing Code History with Development Environment Events
Modern development environments handle information about the intent of the
programmer: for example, they use abstract syntax trees for providing
high-level code manipulation such as refactorings; nevertheless, they do not
keep track of this information in a way that would simplify code sharing and
change understanding. In most Smalltalk systems, source code modifications are
immediately registered in a transaction log often called a ChangeSet. Such
mechanism has proven reliability, but it has several limitations. In this paper
we analyse such limitations and describe scenarios and requirements for
tracking fine-grained code history with a semantic representation. We present
Epicea, an early prototype implementation. We want to enrich code sharing with
extra information from the IDE, which will help understanding the intention of
the changes and let a new generation of tools act in consequence
Abstract unordered and ordered trees CRDT
Trees are fundamental data structure for many areas of computer science and
system engineering. In this report, we show how to ensure eventual consistency
of optimistically replicated trees. In optimistic replication, the different
replicas of a distributed system are allowed to diverge but should eventually
reach the same value if no more mutations occur. A new method to ensure
eventual consistency is to design Conflict-free Replicated Data Types (CRDT).
In this report, we design a collection of tree CRDT using existing set CRDTs.
The remaining concurrency problems particular to tree data structure are
resolved using one or two layers of correction algorithm. For each of these
layer, we propose different and independent policies. Any combination of set
CRDT and policies can be constructed, giving to the distributed application
programmer the entire control of the behavior of the shared data in face of
concurrent mutations. We also propose to order these trees by adding a
positioning layer which is also independent to obtain a collection of ordered
tree CRDTs
- …